package cn.com.acca.ma.service.impl;

import cn.com.acca.ma.common.util.PropertiesUtil;
import cn.com.acca.ma.model.StockIndexMonth;
import cn.com.acca.ma.service.StockIndexMonthService;

import java.util.List;

public class StockIndexMonthServiceImpl extends BaseServiceImpl<StockIndexMonthServiceImpl, StockIndexMonth> implements
    StockIndexMonthService {

    /**************************************************************************************************
     *
     * 									       更新月线级别，所有月份的指数数据
     *
     **************************************************************************************************/
    /**
     * 计算月线级别，所有指数的基础数据
     */
    @Override
    public void writeStockIndexMonth() {
        logger.info("计算月线级别，所有指数的基础数据");

        stockIndexMonthDao.writeStockIndexMonth();
    }

    /**
     * 计算月线级别，所有指数的移动平均线
     */
    @Override
    public void writeStockIndexMonthMA() {
        logger.info("计算月线级别，所有指数的移动平均线");

        stockIndexMonthDao.writeStockIndexMonthMA();
    }

    /**
     * 计算月线级别，所有指数的的KD
     */
    @Override
    public void writeStockIndexMonthKD() {
        logger.info("计算月线级别，所有指数的KD");

        stockIndexMonthDao.writeStockIndexMonthKD();
    }

    /**
     * 计算月线级别，所有指数的MACD
     */
    @Override
    public void writeStockIndexMonthMACD() {
        logger.info("计算月线级别，所有指数的MACD");

        stockIndexMonthDao.writeStockIndexMonthMACD();
    }

    /**************************************************************************************************
     *
     * 									       更新月线级别，某一月的指数数据
     *
     **************************************************************************************************/
    /**
     * 根据开始时间和结束时间，计算某一个月的所有指数的基础数据
     */
    @Override
    public void writeStockIndexMonthByDate() {
        logger.info("根据开始时间和结束时间，计算某一个月的所有指数的基础数据");

        String beginDate = PropertiesUtil
            .getValue(STOCK_INDEX_MONTH_PROPERTIES, "stockIndexMonth.beginDate");
        String endDate = PropertiesUtil.getValue(STOCK_INDEX_MONTH_PROPERTIES, "stockIndexMonth.endDate");

        stockIndexMonthDao.writeStockIndexMonthByDate(beginDate, endDate);
    }

    /**
     * 根据每个月的开始时间，计算某一个月的所有指数的移动平均线
     */
    @Override
    public void writeStockIndexMonthMAByDate() {
        logger.info("根据每个月的开始时间，计算某一个月的所有指数的移动平均线");

        String currentMonthBeginDate = PropertiesUtil
            .getValue(STOCK_INDEX_MONTH_PROPERTIES, "stockIndexMonth.ma.currentMonthBeginDate");
        String currentMonthEndDate = PropertiesUtil
            .getValue(STOCK_INDEX_MONTH_PROPERTIES, "stockIndexMonth.ma.currentMonthEndDate");

        stockIndexMonthDao.writeStockIndexMonthMAByDate(currentMonthBeginDate, currentMonthEndDate);
    }

    /**
     * 根据开始时间和结束时间，计算某一个月的所有指数的kd
     */
    @Override
    public void writeStockIndexMonthKDByDate() {
        logger.info("根据开始时间和结束时间，计算某一个月的所有指数的kd");

        String beginDate = PropertiesUtil
            .getValue(STOCK_INDEX_MONTH_PROPERTIES, "stockIndexMonth.kd.beginDate");
        String endDate = PropertiesUtil.getValue(STOCK_INDEX_MONTH_PROPERTIES, "stockIndexMonth.kd.endDate");

        stockIndexMonthDao.writeStockIndexMonthKDByDate(beginDate, endDate);
    }

    /**
     * 根据开始时间和结束时间，计算某一个月的所有指数的MACD
     */
    @Override
    public void writeStockIndexMonthMACDByDate() {
        logger.info("根据开始时间和结束时间，计算某一个月的所有指数的MACD");

        String beginDate = PropertiesUtil
            .getValue(STOCK_INDEX_MONTH_PROPERTIES, "stockIndexMonth.macd.beginDate");
        String endDate = PropertiesUtil.getValue(STOCK_INDEX_MONTH_PROPERTIES, "stockIndexMonth.macd.endDate");

        stockIndexMonthDao.writeStockIndexMonthMACDByDate(beginDate, endDate);
    }


    @Override
    public String listToString(List list) {
        return null;
    }


}
